<?php

include_once "././src/facebook.php";
		
$eventoModel = new Evento_model();
$usuariosDB = $eventoModel->getSuscriptores();

$i = 1;
$usuarios = array();
while($tablerow = mysql_fetch_array($usuariosDB)) 
{
	 $usuarios[$i] = array(
							'id_usuario' => $tablerow['id_usuario'],
							'id_facebook' => $tablerow['id_facebook'],
							);
	 $i++;
}

$i = 1;
// Cogemos el usuario i de everentDB
while ($i <= count($usuarios)) 
{ 
	$eventos = array();
	if ($usuarios[$i]['id_facebook'] != "")
	{
		// Pillamos los amigos del usuario i de everentDB
		$friends_list = getFriends($usuarios[$i]['id_facebook']);
		$j = 1;
		while ($j <= count($usuarios)) 
		{
			if (($j != $i) && ($usuarios[$j]['id_facebook'] != ""))
			{	
				$k = 0;
				$encontrado = FALSE;
				while (($k < count($friends_list['data'])) && ($encontrado == FALSE)) 
				{
					if (($friends_list['data'][$k]['id'] == $usuarios[$j]['id_facebook']))
					{
						// j es amigo de i en facebook, por lo que cogemos sus eventos
			 			$eventosUsuario = $eventoModel->getApuntados($usuarios[$j]['id_usuario']);
			 			$eventos = storeFriendEvents($eventos, $eventosUsuario);
			 			$encontrado = TRUE;
					}
					$k++;
				}
			}
			$j++;
		}

		setRecomendacionesUsuario($eventos, $usuarios, $i);
	}	
	$i++;
}

function storeFriendEvents($eventos, $eventosUsuario)
{
	while($tablerow = mysql_fetch_array($eventosUsuario))
	{
		//echo "Comparando evento " . $tablerow . " con evento " . $eventos;

		if (array_search($tablerow, $eventos) == FALSE)
		{
			array_push($eventos, $tablerow);
		}
	}

	return $eventos;
}

function setRecomendacionesUsuario($eventos, $usuarios, $i)
{
	$eventoModel = new Evento_model();

	foreach ($eventos as $tablerow)  
	{
		// Comprobamos que el usuario i no esta apuntado ya al evento que ha ido j
		if (mysql_fetch_assoc($eventoModel->getFavoritesByUser($tablerow['id_evento'], $usuarios[$i]['id_usuario']))["COUNT(*)"] == 0)
		{
			$encontrado = FALSE;
			$categEvent = $eventoModel->getCategoriasEvento($tablerow['id_evento']);
			while (($tablerow2 = mysql_fetch_array($categEvent)) && ($encontrado == FALSE))
			{
				$mis_categ =$eventoModel->getCategoriasPref($usuarios[$i]['id_usuario']);
				while (($tablerow3 = mysql_fetch_array($mis_categ)) && ($encontrado == FALSE))
				{
					if ($tablerow3['id_categoria'] == $tablerow2['id_categoria'])
					{
						$eventoModel->setRecomendacion($tablerow['id_evento'], $usuarios[$i]['id_usuario']);
						$encontrado = TRUE;
					}
				}
			}
		}
	}
}



function getFriends($user)
{	
	if($user != "")
	{
		$app_id	= "674201219305675";
		$app_secret	= "d9427cfdaef9cba1b720a43e94a0f7bf";

		$facebook = new Facebook(array(
			'appId'		=> $app_id,
			'secret'	=> $app_secret,
		));

		/*$queries = array(
			array('method' => 'GET', 'relative_url' => '/'.$user),
			array('method' => 'GET', 'relative_url' => '/'.$user.'/friends'),
			array('method' => 'GET', 'relative_url' => '/'.$user.'/interests'),
			array('method' => 'GET', 'relative_url' => '/'.$user.'/events'),
			);*/

		$queries = array(
			array('method' => 'GET', 'relative_url' => '/'.$user.'/friends'),
			);

		try{
			$batchResponse = $facebook->api('?batch='.json_encode($queries), 'POST');
		}catch(Exception $o){
			error_log($o);
		}

		//$userInfo = json_decode($batchResponse[0]['body'], TRUE);
		$friends_list = json_decode($batchResponse[0]['body'], TRUE);
		//$interests = json_decode($batchResponse[2]['body'], TRUE);
		//$events = json_decode($batchResponse[3]['body'], TRUE);

		//echo "Usuario: ".$tablerow['username'] . "</br> </br>";
		//echo $userInfo["name"] . " / ";
		//echo $userInfo["location"]["name"];
		//echo "<br> <br> ------------------------------- <br> <br>";
		//echo $friends["data"][21]["name"];
		//echo "<br> <br> ------------------------------- <br> <br>";

		//var_dump($userInfo);

		//var_dump($friends_list);
		//echo "<br> <br> ------------------------------- <br> <br>";
		return $friends_list;
	}
}
?>